package start;

import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;

public class WebsocketService {

    public static void main(String[] args)  throws  InterruptedException{

        // 初始化主线程池
        NioEventLoopGroup mainGroup = new NioEventLoopGroup();
        // 从。。
        NioEventLoopGroup subGroup = new NioEventLoopGroup();

        try {
            // chuangjian 服务器启动器
            ServerBootstrap bootstrap = new ServerBootstrap();
            // zhiding 使用主线程池和从
            bootstrap.group(mainGroup,subGroup)
                    // 指定使用nio通道
                    .channel(NioServerSocketChannel.class)
                    // 指定通道初始化器加载通道处理器
            .childHandler(new WsServerInitializer());

            // 绑定端口号启动服务器 并等待服务器启动
            // ChannelFuture 是netty 的回调消息
            ChannelFuture future = bootstrap.bind(9090).sync();
            future.channel().closeFuture().sync();
        }  finally {
            // 优雅关闭线程池
            mainGroup.shutdownGracefully();
            subGroup.shutdownGracefully();
        }


    }
}
